<?php
/**
 * Modelo CRUD de clientes
 * @author Emanuel Melo e Renato Lenz @ PC4 Team
 */
class PC4_Crud_Canal extends PC4_Crud_Abstrato {
	
	/**
	 * Construtor
	 */
	function __construct($tabela = 'canais') {
		parent::__construct($tabela);
	}
	
	/**
	 * Executa uma consulta trazendo os registros com paginação
	 * @param int $pagina
	 * @param int $limite
	 * @return array de object registro
	 */
	function lista($pagina = 1, $limite = 30, $debug = false) {
		$this->db->select($this->letra . '.*, u.nome as nomeColunista');
		$this->db->join('usuarios u', 'u.id = ' . $this->letra . '.id_usuarios', 'inner');
		return parent::lista($pagina, $limite, $debug);
	}
	
	/**
	 * Recebe um array com os campos e insere na base de dados o novo registro
	 * @param array $umRegistro
	 * @return int/array $id inserido ou (array)$erros com mensagens de erro
	 */
	function insere($umRegistro) {
		$umRegistro['slug'] = $this->slug($umRegistro['nome']);
		
		return parent::insere($umRegistro);
	}
	
	/**
	 * Edita um registro baseado no id
	 * @param array $umRegistro
	 * @param mixed $valor
	 * @param string $campo o nome alternativo para a chave primaria
	 * @param bool $debug
	 * @return array $erros para cada campo que não passou da validação 
	 */
	function edita($umRegistro, $valor, $campo = 'id', $debug = false) {
		$umRegistro['slug'] = $this->slug($umRegistro['nome'], $valor);
		
		return parent::edita($umRegistro, $valor, $campo, $debug);
	}
}
?>